Enforcing Java Run-Time Properties Using Bytecode Rewriting
نویسندگان
چکیده
Bytecode rewriting is a portable way of altering Java’s behavior by changing Java classes themselves as they are loaded. This mechanism allows us to modify the semantics of Java while making no changes to the Java virtual machine itself. While this gives us portability and power, there are numerous pitfalls, mostly stemming from the limitations imposed upon Java bytecode by the Java virtual machine. We reflect on our experience building three security systems with bytecode rewriting, presenting observations on where we succeeded and failed, as well as observing areas where future JVMs might present improved interfaces to Java bytecode rewriting systems.
منابع مشابه
Java bytecode Verification using Analysis and Transformation of Logic Programs
State of the art analyzers in the (Constraint) Logic Programming paradigm (or (C)LP for short) are nowadays mature and sophisticated. They allow inferring a wide variety of global properties including termination, run-time error freeness, bounds on resource consumption, etc. The aim of this work is to automatically transfer the power of such analysis tools for LP to the analysis and verificatio...
متن کاملQueryll: Java Database Queries Through Bytecode Rewriting
When interfacing Java with other systems such as databases, programmers must often program in special interface languages like SQL. Code written in these languages often needs to be embedded in strings where they cannot be error-checked at compile-time, or the Java compiler needs to be altered to directly recognize code written in these languages. We have taken a different approach to adding da...
متن کاملTowards Verification of Java Bytecode using Logic Programming Tools
State of the art analyzers in the (Constraint) Logic Programming paradigm (or (C)LP for short) are nowadays mature and sophisticated. They allow inferring a wide variety of global properties including termination, run-time error freeness, bounds on resource consumption, etc. The aim of this work is to automatically transfer the power of such analysis tools for LP to the analysis and verificatio...
متن کاملTermination and Rollback in Language-Based Systems
Language run-time systems are routinely used to host potentially buggy or malicious code in a secure environment. For this thesis, we address a single aspect of the resourcemanagement problem, the problem of code termination, including the related issue of restarting previously terminated code. We provide formal analysis, including proofs of the correctness of our termination system for an idea...
متن کاملDemo Abstract: Run-time Compilation of Bytecode in Wireless Sensor Networks
Recent work on virtual machines for wireless sensor networks has demonstrated the benefits of using a Java programming paradigm for resource constrained sensor networks. Results have shown that a virtual machine approach greatly suffers from interpretation overheads. We present run-time compilation of bytecode which leverages from a compact platform independent bytecode application encoding as ...
متن کامل